C语言丨关键字signed和unsigned 的使用与区别详解 您所在的位置:网站首页 long int的int可以省略吗 C语言丨关键字signed和unsigned 的使用与区别详解

C语言丨关键字signed和unsigned 的使用与区别详解

2024-06-03 08:34| 来源: 网络整理| 查看: 265

在C语言中,signed/unsigned用于修饰整数变量,signed表示有符号的,unsigned表示无符号的。 今天就带大家了解一下 关键字signed和unsigned 。

 

1、signed

sign的本意是“标记,做记号”,ed后缀有一种完成时的感觉,这里表示的是有符号的。

signed关键字是ISO/ANSI C90标准新增的,其常见于整数类型的符号规定处 。

signed的作用是:声明有符号类型的整数类型。

其实说signed很常见也不见得,因为我们常用的int、short和long,以及long long,默认情况下都是signed有符号的

所以相比起来unsigned的戏份可能比signed更多,signed在这里只是相当于刻意地去说明其后面的变量是有符号类型的

signed int a; /* 通常这里带signed的变量定义都可以省略掉signed,因为signed本身就是默认的 */

signed short int b;

signed short c;

signed long int d;

signed long e;

signed long long f;

unsigned int g;      /* 写上signed后,上面的定义似乎在刻意地大声说“上面这些变量应该是有符号的” */

unsigned short h;    /* 但一般unsigned的戏份还是比signed多,signed关键字和auto关键字的宿命类似 */

有符号数在计算机中的的表示方法:在计算机内部,是用补码表示有符号数

-正数的补码是其本身

-负数的补码为负数的绝对值得各个位取反加1

举个例子:

8位整数 5的补码为:0000 0101

8位整数 -7的补码为:取绝对值|-7| = 7 --> 二进制为 0000 0111 --> 各个位取反 1111 1000 -->最后加1 -->1111 1001,所 以-7在计算机中就表示为1111 1001。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有